package chai.ning.abstracts;

/**
 * 1、抽象类是被abstract修饰的类
 * 2、含有抽象方法的类【必须】是抽象类
 * 3、抽象类也是类，在抽象类内部可以声明 字段、方法、构造方法
 */
public abstract class Human {
	
	protected String name ;
	
	public Human(String name) {
		super();
		this.name = name;
	}
	
	// 抽象方法: 暂时无法确定实现过程的方法，使用 abstract 关键字来修饰
	// 抽象方法是非具体的、在提供具体的实现过程之前不能被调用的
	public abstract void eat( String food ); // 注意这里是分号结束，不是 { }

	@Override
	public String toString() { // 非抽象方法 【 即 具体方法 】
		return "Human[name=" + name + "]";
	}

}
